/*
*所有关于Warehouse类的业务代码接口应在此处编写
*/
using VOL.Core.BaseProvider;
using VOL.Entity.DomainModels;
using VOL.Core.Utilities;
using System.Linq.Expressions;
using MyMES.Dto;
using MyMES.Infrastructure;
namespace MyMES.IServices
{
    public partial interface IWarehouseService
    {
        #region 仓库设置
        /// <summary>
        /// 获取仓库设置信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<APIPage<Warehouse>> GetWarehousePageList(GeiWarehousePageListDTO request);
        /// <summary>
        /// 新增仓库设置信息
        /// </summary>
        /// <param name="param">仓库参数</param>
        /// <returns></returns>
        Task<int> CreateWarehouse(Warehouse param);
        /// <summary>
        /// 删除仓库设置信息
        /// </summary>
        /// <param name="param">仓库参数</param>
        /// <returns></returns>
        Task<int> DeleteWarehouse(Warehouse param);
        /// <summary>
        /// 修改仓库设置信息
        /// </summary>
        /// <param name="param">仓库参数</param>
        /// <returns></returns>
        Task<int> UpdateWarehouse(Warehouse param);

        #endregion

        #region 库区设置
        /// <summary>
        /// 获取库区信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<APIPage<ReservoirArea>> GetReservoirAreaPageList(GetReservoirAreaPageListDTO request);
        /// <summary>
        /// 新增库区信息
        /// </summary>
        /// <param name="param">库区参数</param>
        /// <returns></returns>
        Task<int> CreateReservoirArea(ReservoirArea param);
        /// <summary>
        /// 删除库区信息
        /// </summary>
        /// <param name="param">库区参数</param>
        /// <returns></returns>
        Task<int> DeleteReservoirArea(ReservoirArea param);
        /// <summary>
        /// 修改库区信息
        /// </summary>
        /// <param name="param">供货商参数</param>
        /// <returns></returns>
        Task<int> UpdateReservoirArea(ReservoirArea param);

        #endregion

        #region 库位设置

        /// <summary>
        /// 获取库位信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<APIPage<BinLocation>> GetBinLocationPageList(GetBinLocationPageListDTO request);
        /// <summary>
        /// 新增库位信息
        /// </summary>
        /// <param name="param">库位参数</param>
        /// <returns></returns>
        Task<int> CreateBinLocation(BinLocation param);
        /// <summary>
        /// 删除库位信息
        /// </summary>
        /// <param name="param">库位参数</param>
        /// <returns></returns>
        Task<int> DeleteBinLocation(BinLocation param);
        /// <summary>
        /// 修改库位信息
        /// </summary>
        /// <param name="param">库位数</param>
        /// <returns></returns>
        Task<int> UpdateBinLocation(BinLocation param);

        #endregion

    }
}
